Readme

Example Summary

I2C Controller writes and reads multiple bytes to/from a target device. The example uses FIFO and interrupts. LED toggles if transmission and reception are successful. The Target device must be enabled and active before running this example.

This example can be used to validate I2C communication, as a starting point to control any I2C target, or to create custom drivers.

Note: Example requires Rev E3 or later of the MSPM0C1104 LaunchPad.

Peripherals & Pin Assignments

Peripheral Pin Function
GPIOA PA22 Standard Output
GPIOA PA2 Standard Output
SYSCTL
I2C0 PA0 I2C Serial Data line (SDA)
I2C0 PA11 I2C Serial Clock line (SCL)
EVENT
DEBUGSS PA20 Debug Clock
DEBUGSS PA19 Debug Data In Out

BoosterPacks, Board Resources & Jumper Settings

Visit LP_MSPM0C1104 for LaunchPad information, including user guide and hardware files.

Pin Peripheral Function LaunchPad Pin LaunchPad Settings
PA22 GPIOA PA22 J1_8 N/A
PA2 GPIOA PA2 J2_13
  • This pin can be used for testing purposes in boosterpack connector
    • Pin can be reconfigured for general purpose as necessary
PA0 I2C0 SDA J1_10
  • PA0 is 5V tolerant open-drain so it requires pull-up
    • J20 1:2 Use 3.3V pull-up
    • J20 2:3 Use 5V pull-up
PA11 I2C0 SCL J1_9
  • PA11 can be connected to an external 3.3V pull-up
    • J6 OFF Disconnect 3.3V pull-up
    • J6 ON Connect 3.3V pull-up
PA20 DEBUGSS SWCLK J2_11
  • PA20 is used by SWD during debugging
    • J101 13:14 ON Connect to XDS-110 SWCLK while debugging
    • J101 13:14 OFF Disconnect from XDS-110 SWCLK if using pin in application
PA19 DEBUGSS SWDIO J2_17
  • PA19 is used by SWD during debugging
    • J101 11:12 ON Connect to XDS-110 SWDIO while debugging
    • J101 11:12 OFF Disconnect from XDS-110 SWDIO if using pin in application

Device Migration Recommendations

This project was developed for a superset device included in the LP_MSPM0C1104 LaunchPad. Please visit the CCS User’s Guide for information about migrating to other MSPM0 devices.

Low-Power Recommendations

TI recommends to terminate unused pins by setting the corresponding functions to GPIO and configure the pins to output low or input with internal pullup/pulldown resistor.

SysConfig allows developers to easily configure unused pins by selecting BoardConfigure Unused Pins.

For more information about jumper configuration to achieve low-power using the MSPM0 LaunchPad, please visit the LP-MSPM0C1104 User’s Guide.

Example Usage

Connect SDA and SCL between I2C Controller and Target. Note that I2C requires pull-up resistors. Internal pull-ups can be enabled in SysConfig (see datasheet for resistance specification), but external pull-ups might be required based on I2C speed and capacitance. External pull-ups can be connected or enabled using the LaunchPad. Compile, load and run the example. LED1 will toggle periodically if transmission and reception were successful. LED1 will remain off if there is a problem during initialization. LED1 will remain on if there is a problem during data transfers. USER_TEST_PIN GPIO will mimic the behavior of the LED pin on the BoosterPack header and can be used to verify the LED behavior.